/**
 * 导出所有模块需要用到接口
 * 一级属性：模块名
 * 一级属性中的方法：当前模块需要用的接口
 * @type {Object}
 */
import ajax from './ajaxdata';

let api = {
    // 用户
    user: {
        /**
         * 去掉code发请求
         * @param {object} data 参数
         * @param {function} fn 成功回调
         */
        validateAuthorization(data, fn, errFn) {
            ajax.call(this, 'post', 'ValidateAuthorization', data, fn, true, errFn);
        },
        /**
         * 登录
         * @param {object} data 参数
         * @param {string} data.loginName 用户名
         * @param {string} data.passWord 密码
         * @param {function} fn 成功回调
         */
        login(data, fn, errFn) {
            ajax.call(this, 'get', 'LoginAction', data, fn, true, errFn);
        },
        /**
         * 登录
         * @param {object} data 参数
         * @param {string} data.loginName 用户名
         * @param {string} data.passWord 密码
         * @param {function} fn 成功回调
         */
        loginoutt(data, fn, errFn) {
            ajax.call(this, 'get', 'http://192.168.0.245:8081/oexam/otherLogout?format=json', data, fn, true, errFn);
        },
        /**
         * 常量管理
         * @param {object} data 参数
         * @param {string} data.loginName 用户名
         * @param {string} data.passWord 密码
         * @param {function} fn 成功回调
         */
        getConstant(data, fn, errFn) {
            ajax.call(this, 'get', 'GetConstant', data, fn, true, errFn);
        },
        /**
         * 个人目标接口
         * @param {object} data 参数
         * @param {function} fn 成功回调
         */
        querySinTarget(data, fn, errFn) {
            ajax.call(this, 'get', 'QuerySinTargetInfoAction', data, fn, true, errFn);
        },
        /**
         * 单个学员新增页面获取常量
         */
        queryUserInfoAction(data, fn, errFn) {
            ajax.call(this, 'get', 'QueryUserInfoAction', data, fn, true, errFn);
        },
        /**
         *
         * @param {object} data 参数
         * @param {string} data.loginName 已登录用户
         * @param {string} data.newPassWord 新密码
         * @param {string} data.confirmPassword 确认密码
         * @param {object} data.originalPassword 原密码
         * @param {string} data.phone 电话号码
         * @param {string} data.email 电子邮箱
         * @param {string} data.conversionTarget 关单目标（招转渠道咨询特有）
         * @param {function} fn 成功回调
         */
        updateUserInfoAction(data, fn, errFn) {
            ajax.call(this, 'post', 'UpdateUserInfoAction', data, fn, true, errFn);
        },
        /**
         *  登入登出的排行榜
         * @param {object} data 参数
         */
        queryRankAction(data, fn, errFn) {
            ajax.call(this, 'get', 'QueryRankAction', data, fn, true, errFn);
        }
    },
    // 操作日志
    log: {
        /**
         * 操作日志列表
         * @param {object} data 参数
         * @param {string} data.pageSize 每页记录数
         * @param {string} data.pageNum 总记录数
         * @param {string} data.operationDate 操作日期
         * @param {string} data.operatorName 操作者姓名
         * @param {string} data.operationContent 操作内容
         * @param {string} data.operationType 操作类型
         * @param {function} fn 成功回调
         */
        qperationLogList(data, fn, errFn) {
            ajax.call(this, 'post', 'OperationLogList', data, fn, true, errFn);
        }
    },
    // 定时任务
    task: {
        /**
         * 定时任务列表
         * @param {object} data 参数
         * @param {string} data.pageSize 每页记录数
         * @param {string} data.pageNum 总记录数
         * @param {function} fn 成功回调
         */
        queryTaskList(data, fn, errFn) {
            ajax.call(this, 'get', 'QueryTaskList', data, fn, true, errFn);
        },
        /**
         * 修改定时任务状态
         * @param {object} data 参数
         * @param {string} data.pageSize 每页记录数
         * @param {string} data.pageNum 总记录数
         * @param {function} fn 成功回调
         */
        editTask(data, fn, errFn) {
            ajax.call(this, 'get', 'EditTask', data, fn, true, errFn);
        }
    },
    // 数据字典一级列表
    dic: {
        /**
         * 数据字典一级列表
         * @param {object} data 参数
         * @param {string} data.pageSize 每页记录数
         * @param {string} data.pageNum 总记录数
         * @param {function} fn 成功回调
         */
        queryConstantType(data, fn, errFn) {
            ajax.call(this, 'get', 'QueryConstantType', data, fn, true, errFn);
        },
        /**
         * 数据字典二级列表
         * @param {object} data 参数
         * @param {string} data.pageSize 每页记录数
         * @param {string} data.pageNum 总记录数
         * @param {string} data.constantTypeCode 类型编码
         * @param {function} fn 成功回调
         */
        queryConstantList(data, fn, errFn) {
            ajax.call(this, 'get', 'QueryConstantList', data, fn, true, errFn);
        },
        /**
         * 新增数据字典
         * @param {object} data 参数
         * @param {function} fn 成功回调
         */
        addConstant(data, fn, errFn) {
            ajax.call(this, 'get', 'AddConstant', data, fn, true, errFn);
        },
        /**
         * 修改数据字典
         * @param {object} data 参数
         * @param {function} fn 成功回调
         */
        editConstant(data, fn, errFn) {
            ajax.call(this, 'get', 'EditConstant', data, fn, true, errFn);
        },
        /**
         * 删除数据字典
         * @param {object} data 参数
         * @param {function} fn 成功回调
         */
        delConstant(data, fn, errFn) {
            ajax.call(this, 'get', 'DelConstant', data, fn, true, errFn);
        }
    }
};
module.exports = api;